package paidaxing.blog.core.service;

/**
 * 用户信息服务接口
 * 用于在不直接依赖blog-user模块的情况下获取用户信息
 */
public interface UserInfoService {
    /**
     * 根据用户ID获取用户信息
     * 
     * @param userId 用户ID
     * @return 用户信息DTO
     */
    UserInfoDTO getUserInfoById(Long userId);
    
    /**
     * 根据用户ID获取公开的用户信息
     * 
     * @param userId 用户ID
     * @return 用户信息DTO
     */
    UserInfoDTO getPublicUserInfoById(Long userId);
    
    /**
     * 用户信息DTO
     */
    class UserInfoDTO {
        private Long id;
        private String username;
        private String nickname;
        private String avatar;
        
        // Getters and Setters
        public Long getId() {
            return id;
        }
        
        public void setId(Long id) {
            this.id = id;
        }
        
        public String getUsername() {
            return username;
        }
        
        public void setUsername(String username) {
            this.username = username;
        }
        
        public String getNickname() {
            return nickname;
        }
        
        public void setNickname(String nickname) {
            this.nickname = nickname;
        }
        
        public String getAvatar() {
            return avatar;
        }
        
        public void setAvatar(String avatar) {
            this.avatar = avatar;
        }
    }
}